<!DOCTYPE html>
<html lang="en" >
<head>
  <meta charset="UTF-8">
  <title>SVG五彩Loading加载动画</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
</head>
<style>
	@import "normalize.css";
	
	*,
	*:after,
	*:before {
		box-sizing: border-box;
	}
	
	body {
		display: grid;
		place-items: center;
		min-height: 100vh;
		background: hsl(210 30% 10%);
	}
	
	svg {
		width: 50vmin;
	}
	
	:root {
		--speed: .875s;
	}
	
	g:nth-of-type(1) { --delay: 0.35; }
	g:nth-of-type(2) { --delay: 0.5; }
	g:nth-of-type(3) { --delay: 0.75; }
	g:nth-of-type(4) { --delay: 1; }
	g:nth-of-type(5) { --delay: 0.75; }
	g:nth-of-type(6) { --delay: 0.5; }
	g:nth-of-type(7) { --delay: 0.35; }
	
	line {
		transform-origin: 50% 50%;
		translate: 0 -50%;
		-webkit-animation: drop var(--speed) calc((sin(var(--delay)) * -1s)) infinite alternate ease-in-out;
		        animation: drop var(--speed) calc((sin(var(--delay)) * -1s)) infinite alternate ease-in-out;
	}
	
	@-webkit-keyframes drop {
		0%, 5% {
			translate: 0 -50%;
		}
		95%, 100% {
			translate: 0 50%;
		}
	}
	
	@keyframes drop {
		0%, 5% {
			translate: 0 -50%;
		}
		95%, 100% {
			translate: 0 50%;
		}
	}
	
	line,
	circle {
		transform-box: fill-box;
	}
	
	circle:first-of-type {
		transform-origin: 50% 100%;
		-webkit-animation: pulse calc(var(--speed) * 2) calc((sin(var(--delay)) * -1s)) infinite ease-in-out;
		        animation: pulse calc(var(--speed) * 2) calc((sin(var(--delay)) * -1s)) infinite ease-in-out;
	}
	
	circle:last-of-type {
		transform-origin: 50% 0%;
		-webkit-animation: pulse calc(var(--speed) * 2) calc(((sin(var(--delay)) * -1s) + (var(--speed) * -1))) infinite ease-in-out;
		        animation: pulse calc(var(--speed) * 2) calc(((sin(var(--delay)) * -1s) + (var(--speed) * -1))) infinite ease-in-out;
	}
	
	@-webkit-keyframes pulse {
		0%, 20% { transform: scale(1); }
		50%, 100% { transform: scale(0); }
	}
	
	@keyframes pulse {
		0%, 20% { transform: scale(1); }
		50%, 100% { transform: scale(0); }
	}
	
	svg {
		overflow: visible !important;
	}
</style>
<body>
<!-- partial:index.partial.html -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 700 350">
  <defs>
    <filter id="goo">
      <feGaussianBlur id="SvgjsFeGaussianBlur1000" result="SvgjsFeGaussianBlur1000" in="SourceGraphic" stdDeviation="10">
      </feGaussianBlur>
      <feColorMatrix id="SvgjsFeColorMatrix1001" result="SvgjsFeColorMatrix1001" in="SvgjsFeGaussianBlur1000" values="
            1 0 0 0 0                                      
            0 1 0 0 0
            0 0 1 0 0
            0 0 0 30 -10" type="matrix"></feColorMatrix>
      <feComposite id="SvgjsFeComposite1002" result="SvgjsFeComposite1002" in="SvgjsFeColorMatrix1001" operator="atop">
      </feComposite>
    </filter>
    <linearGradient id="g" x1="100%" x2="0" y1="0" y2="80%" gradientTransform="rotate(10)">
      <stop offset="10%" stop-color="hsl(10, 90%, 50%)" />
      <stop offset="22%" stop-color="hsl(35, 90%, 50%)" />
      <stop offset="38%" stop-color="hsl(45, 90%, 50%)" />
      <stop offset="50%" stop-color="hsl(180, 90%, 50%)" />
      <stop offset="70%" stop-color="hsl(210, 90%, 50%)" />
      <stop offset="84%" stop-color="hsl(280, 90%, 50%)" />
      <stop offset="100%" stop-color="hsl(320, 90%, 50%)" />
    </linearGradient>
    <mask id="mask">
      <g>
        <circle cx="50" cy="25" r="25" fill="white"></circle>
        <line x1="50" x2="50" y1="100" y2="250" stroke-width="50" stroke="white" stroke-linecap="round"></line>
        <circle cx="50" cy="325" r="25" fill="white"></circle>
      </g>
      <g>
        <circle cx="150" cy="25" r="25" fill="white"></circle>
        <line x1="150" x2="150" y1="100" y2="250" stroke-width="50" stroke="white" stroke-linecap="round"></line>
        <circle cx="150" cy="325" r="25" fill="white"></circle>
      </g>
      <g>
        <circle cx="250" cy="25" r="25" fill="white"></circle>
        <line x1="250" x2="250" y1="100" y2="250" stroke-width="50" stroke="white" stroke-linecap="round"></line>
        <circle cx="250" cy="325" r="25" fill="white"></circle>
      </g>
      <g>
        <circle cx="350" cy="25" r="25" fill="white"></circle>
        <line x1="350" x2="350" y1="100" y2="250" stroke-width="50" stroke="white" stroke-linecap="round"></line>
        <circle cx="350" cy="325" r="25" fill="white"></circle>
      </g>
      <g>
        <circle cx="450" cy="25" r="25" fill="white"></circle>
        <line x1="450" x2="450" y1="100" y2="250" stroke-width="50" stroke="white" stroke-linecap="round"></line>
        <circle cx="450" cy="325" r="25" fill="white"></circle>
      </g>
      <g>
        <circle cx="550" cy="25" r="25" fill="white"></circle>
        <line x1="550" x2="550" y1="100" y2="250" stroke-width="50" stroke="white" stroke-linecap="round"></line>
        <circle cx="550" cy="325" r="25" fill="white"></circle>
      </g>
      <g>
        <circle cx="650" cy="25" r="25" fill="white"></circle>
        <line x1="650" x2="650" y1="100" y2="250" stroke-width="50" stroke="white" stroke-linecap="round"></line>
        <circle cx="650" cy="325" r="25" fill="white"></circle>
      </g>
    </mask>
  </defs>
  <g filter="url(#goo)">
    <rect x="0" y="0" width="100%" height="100%" fill="url(#g)" mask="url(#mask)"></rect>
  </g>
</svg>
<!-- partial -->
  
</body>
</html>
